package DataStr.Day2;

import java.util.Arrays;

public class QuestionTwo {
    //合并两个非递减数组 nums1的长度为m+n 最后合并的数组存储在nums1中
    //暴力方法
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        for (int i = 0; i < n ; i++) {
           nums1[m+i] = nums2[i];
        }
        Arrays.sort(nums1);
    }
    //双指针
    public void TwoPoint(int[] nums1, int m, int[] nums2, int n) {
       //新建一个长度为m+n的数组
        int[] temp = new int[m+n];
        int cur ;
        //双指针从左到右一次比较大小  入新数组
        int p1 = 0,p2 = 0;
        while(p1<m ||p2<n){
            //nums1数据没有了
            if (p1 == m){
                cur = nums2[p2++];
            }else if(p2 == n){
                cur = nums1[p1++];
            }else if(nums1[p1] < nums2[p2]){
                cur = nums1[p1++];
            }else{
                cur = nums2[p2++];
            }
            temp[p1+p2-1] = cur;
        }
        for (int i = 0; i < temp.length; i++) {
            nums1[i] = temp[i];
        }

    }
}
